var matchText = lineText.slice(start.ch, cur.ch);
var matchTextLower = matchText.toLowerCase();
var completionEntries: CodeMirror.showHint.Completion[] = [];
for (var i = 0; i < completions.entries.length; i++) { if (completionEntries.length > 16) break;
var co = completions.entries[i];
if (matchText && co.name.toLowerCase().indexOf(matchTextLower) < 0)
var det = typescriptService().service.getCompletionEntryDetails(this.path, curOffset, co.name);
completionEntries.push(this._processCompletionEntry(co, det));
if (!completionEntries.length
|| (completionEntries.length === 1 && completionEntries[completionEntries.length - 1].text === matchText))
var result: CodeMirror.showHint.CompletionResult = { private _processCompletionEntry(co: ts.CompletionEntry, det: ts.CompletionEntryDetails): CodeMirror.showHint.Completion { render: (element: HTMLElement, self, data) => { if (det.displayParts.length>3
&& det.displayParts[0].text=='(' && det.displayParts[2].text==')')
for (var i = startIndex; i < det.displayParts.length; i++) { var span = document.createElement('span'); span.textContent = det.displayParts[i].text;
span.className = 'teapo-ts-syntax-' + det.displayParts[i].kind;
element.appendChild(span);
onChanges(docChanges: CodeMirror.EditorChange[], summary: ChangeSummary) { this._changes.push(new TypeScript.TextChangeRange(
new TypeScript.TextSpan(summary.lead, summary.mid),
super.onChanges(docChanges, summary);
changes(): TypeScript.TextChangeRange[] { export function createCodeMirrorDoc(text: string): CodeMirror.Doc { return new CodeMirror.Doc(text || '', 'text/typescript');